Tabs based drag and drop graphical trading interface

ABSTRACT

The interface comprises one or more grids, each grid typically associated with a specific security. GUI objects or icons representing orders of a specific quantity may be dragged and dropped onto the grid to place, change, or cancel orders. The Grids are contained within tab pages, which are further contained as tab sets. Status icons are used to represent open, filled, and cancelled orders. The Icon Locate and Order locate feature allows orders on the Grid and Icons in the status panels to be easily referenced. Status Icons may be stamped with their associated order type or status. Similarly, the status icons may take the form of Corporate logos and adjust in size according to the value or quantity of a position. An Icon packing feature allows status icons to be efficiently placed within their total panel area. Advertising content may be displayed on the trading interface and is also conveniently packaged within tabsets.

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 12/267,639 entitled, “Tabs based drag and dropgraphical trading interface,” filed on Nov. 10, 2008 which is acontinuation of and claims priority to U.S. patent application Ser. No.11/162,642 entitled, “Tabs based drag and drop graphical tradinginterface,” filed on Sep. 17, 2005 which claims priority to U.S.Provisional Patent Application Ser. No. 60/610,522 filed Sep. 17, 2004and is a continuation-in-part of U.S. patent application Ser. No.09/892,891 filed Jun. 28, 2001 and Ser. No. 09/897,437 filed Jul. 3,2001, and Int. Appl. Number PCT/CA03/01377 filed Sep. 9, 2003 whichentered the national phase as U.S. Ser. No. 10/527,400 and claimspriority to CA 2,403,300 filed Sep. 12, 2002. The entire contents ofwhich are incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates generally to graphical user interfaces, and moreparticularly, to graphical user interfaces for buying and selling itemssuch as securities and for facilitating such transactions.

2. Background

There are a number of trading systems, and a number of individuals, whoengage in real time day-to-day or minute-to-minute security trading.Very often, such individuals are referred to as day traders.

Moreover, many stock brokers have an interest or duty to observe thedynamics of the market, including price fluctuations and volume oftrading in any security.

However, even some proprietary software which is available for use bysuch individuals as day traders and stock brokers may requireconsiderable key stroke input, and may not provide a dynamic displaywhich indicates not only current market conditions but, by beingobserved over a period of time, such dynamic display would indicate whatthe market is doing with respect to a particular security. For example,Bank of Montreal Investorline™ requires that a user shall first enterthe ticker symbol for a selected security, then enter the price, thenthe number of shares, and finally click on a confirmation button. Aswill be explained hereafter, the present invention permits the user toeffectively drag and drop an icon representing at least one selectedsecurity, with a selected trading order, over a grid to a selected cellhaving a selected price, and dropping the icon so as to effect thedesired trading order.

Graphical displays in keeping with the present invention will indicatewhether the market is moving up or down, whether there is a high volumeor low volume of trades occurring at the present time, and even thenumber of buy or sell orders that may be in place, and at what price, asthey may be handled by any market participant.

The trader to whom the present invention is particularly directed isusually, but not necessarily, a sophisticated trader, who is interestedin the dynamics of the market, and who is interested in obtaining datafor any selected security at any instant in time, as well as to watchthe changes in market conditions as they may affect that security over aperiod of time.

The present invention provides means, including particularly a graphicaluser interface, to permit the trader to achieve the goals set forthabove.

While the present invention is particularly directed to a graphicaltrading system for use in trading securities, it necessarily includesall of the appropriate physical architecture and logical architecture atleast, in functional terms that are necessarily order to facilitateoperation of the present invention.

Of course, it will be understood that the present invention contemplatesthe existence throughout the network of traders and market participants,of secure and high speed communications channels, and of sufficientlypowerful and high speed computer hardware to function appropriately andto assure seamless and transparent functionality and operation of themarket overview and security trading functionalities of the presentinvention. The present invention also contemplates that proprietarysoftware which embodies features, functions, and particulars of theteachings herein, will be resident in any computer hardware at the siteof any trader practicing or operating this invention.

SUMMARY OF THE INVENTION

The present invention provides a tabs based drag and drop graphicaltrading interface for use by any trader who engages in tradingsecurities through established security trading markets, in essentiallyreal time. The system comprises one or more grids where GUI objects oricons representing orders may be dragged and dropped to place, change,or cancel orders.

The Grid is made up of an arrangement of cells. Each cell is associatedwith a price or range of prices. A handgrab feature allows the Grid andits associated price axis to move up and down. The price axis of thegrid can also be centered by double-clicking on the price axis. A methodof identifying crossed markets in a visually distinct manner on the gridis disclosed.

The graphical trading interface is adapted to establish a connectionwith any backend system used by any market participant through suitablecommunication channels.

The graphical trading interface is available through a computer at eachparticipating trader's site. The interface supports multiple tabsetseach of which contains at least one tabpage. The tabpages typicallycontain a grid associated with a specific security. Tabpages may beorganized or moved by drag and dropping said tabpages within tabsets,between tabsets, and by drag and dropping them to a new location tocreate a new tabset.

Status icons are used to represent the status of open, filled, andcancelled orders. The Icon Locate and Order locate feature allows orderson the Grid and Icons in the status panels to be easily referenced.Status Icons may be stamped with their associated order type or status.Similarly, the status icons may take the form of Corporate logos andadjust in size according to the value or quantity of a position. An Iconpacking feature allows status icons to be efficiently located andvisible to the user within their respective status panels. Thus reducingthe possibility of icons representing open orders or filled orders frombeing overlooked.

A Replay feature is used to record and playback historical tradingactivity on a Grid. Typically, the time duration of the animation isaccelerated. Advertising content may be displayed on the tradinginterface and conveniently packaged within tabsets. Other programs andtheir associated data may be packaged within tabpages to provide atrader with relevant tools necessary for researching, analyzing, andplanning securities trades.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a block diagram of the trading grid as a software object.

FIG. 2 is a block diagram of the software architecture of a front-endapplication.

FIG. 3 shows a representation of a tabs based drag and drop graphicaltrading interface of the present invention as presented and viewed on adisplay device.

FIGS. 4-7 show various aspects of the interface's Order Locate and IconLocate feature used to cross reference Icons on the Status panels withOrders on the Grid.

FIG. 8 shows an example of the Holdings Order Locate feature.

FIG. 9 shows an example of the Icon Locate feature when multiple openorders are present at one cell location on the Grid.

FIG. 10 shows data typically found on the holdings tab displayed in iconview.

FIG. 11 shows a trading interface with two tabsets.

FIG. 12 shows a trading interface with two tabsets, wherein one tabsetshows a market maker column expanded to show each price point in 1 centincrements.

FIG. 13 shows a trading interface with two tabsets, wherein one tabsetshows two market maker columns expanded to show each price point in 1cent increments.

FIG. 14 shows a trading interface with two tabsets, and depicts the useraction of placing a tab into a new tabset.

FIG. 15 shows a trading interface wherein a new tabset in created in themiddle of the original two tabsets shown in FIG. 11.

FIGS. 16-18 show the Replay Feature configuration settings panel of theinterface.

FIG. 19 is a representation of the Replay Feature playback tabpage.

FIGS. 20-27 are representations of market data, news, and researchcontent directed to the users of the interface.

FIG. 28 is a representation of an online chat tab page as it may beimplemented on the interface.

FIG. 29 is a representation of a market analysis tabpage as it may bepresented on the interface.

FIGS. 30-32 is a representation of multimedia program, a word processingprogram, and a spreadsheet program as it may be implemented on theinterface.

FIGS. 33-35 are representations of targeted services directed to theusers of the interface.

FIGS. 36-40 are representations of targeted advertisements directed tothe users of the interface.

FIGS. 41-46 show how the Icon Packing feature is implemented.

FIGS. 47A and 47B show corporate logos used as status icons within thestatus panel area of the interface.

FIGS. 48A and 48B show status icons which are stamped as to their ordertype.

FIGS. 49 and 50 show a crossed market situation on the Grid.

FIG. 51 is representative of the Position Guide Direct Output Settingspanel.

FIGS. 52A and 52B illustrate the hand-grab feature used to move the gridand its associated price axis up or down.

FIG. 53A shows an example of advertisements that are displayed to usersof software applications that are configured to receive advertisements.

FIG. 53B shows the main window of a trading interface with specificareas highlighted to indicate where advertisements may be displayed.

FIG. 54A shows an example of a scrolling ticker that displaystrading-related information.

FIG. 54B shows the main window of a trading interface with specificareas highlighted to indicate where scrolling tickers that showtrading-related information may be displayed.

FIG. 55 shows a flowchart depicting an algorithm for the icon packingfeature.

FIG. 56 displays a table showing how icon size in the status panels maybe proportional to a parameter of the security or trade.

FIG. 57 shows a table with examples of the cell price interval and cellprice range options associated with a given cell on the grid.

FIG. 58 shows the architecture of an Ad Targeting System for onlinetrading.

FIG. 59 shows the internal structure of the Advertisement TargetingSystem.

DETAILED DESCRIPTION

In this application the following terms shall have the followingmeanings. The term “item” means anything that can be bought or sold. Aprimary example of an item is a financial instrument, such as asecurity, but the present invention comprehends all forms of vendibleitems such as auction items, tickets, seats, rentals, durable goods,perishable items, collectibles, and the like. The term “transactionconditions” comprehends all forms of transaction defining parameters,including, without limitation, price, market, quantity, total value,commission, currency, terms, order type, and the like. The term “order”typically means data pertaining to a user's bid or offer for aparticular item, or an order for a security or auction. Order dataincludes, without limitation, data regarding the price at which a userwill buy, sell, stop, or short an item, the size or quantity of anorder, the identity of the user, and the duration that the user's orderremains valid. The term “quote” means data pertaining to a quote or anorder other than an order of the user of the present invention. Quotedata for a specific item typically includes, without limitation, the bidand ask prices, the market and item identifiers, the size or quantityassociated with the bid and ask prices, and the like.

As explained in more detail below, transaction conditions can be derivedfrom the position of a user directed moveable icon, or GUI object, on agraphical representation of the market, or markets, for an item.Transaction conditions can also be derived from user selected criteriarelating to the transaction, from predetermined criteria held in adatabase and relating to the user, and from the user's preferences,settings, and the like.

A movable icon is any form of GUI object that can be positioned by auser. Most preferably, according to the present invention a graphicalrepresentation is one where the position of the movable or non-movableicon, such as its position in a pricing grid, is directly related to anumerical value, such as a price value, to display to the user, andthrough a glance, its association with other elements in the pricinggrid. A graphical representation comprehends all representations of iteminformation that do not rely solely on the numerical value to conveyinformation, and in particular, are related to some or all of thevisible aspects of the trading grid as described herein.

One aspect of the present invention improves on the utility of thetraditional Level 2 or ECN quote display by “plotting” bids and asks fora particular security on a two-dimensional grid whose columns aretypically labeled with market identifiers, and whose rows are labeledwith price values. The grid functions like a mathematical “coordinatesystem”, wherein the vertical axis represents the range of prices thatthe security can have, and the horizontal axis represents the markets ormarket participants that trade in the security. The intersection of arow and a column defines a cell, which represents at least one specificmarket and at least one specific price level for a security. The pricecomponent of a cell may be regarded as a price bin representing at leastone distinct price. The market component of a cell may be regarded as amarket bin representing at least one distinct market. The grid thusappears as a two-dimensional array of cells resembling a checkerboard.This two-dimensional array of cells serves as the grid's “plottingsurface”, where bids, asks, various orders and order types, and otherinformation are plotted. This collection of GUI objects—consisting ofthe column and row labels and the two-dimensional array of cells—definethe “trading grid” referred to henceforth in this document.

On the trading grid, bids and asks are represented by color-coded iconsthat are plotted on the trading grid's “plotting surface” (i.e. thearray of cells). For example, a bid for MSFT on Island ECN at $61.45 isplotted on the cell which is the intersection of the “ISLD” column andthe “61.45” row. As the bid and ask prices change dynamically and inreal-time, the positions of the color-coded icons change accordingly, toreflect the change in prices graphically and in real-time. As an initialconvention, blue rectangular icons represent bids while red rectangularicons represent asks. Additionally, the bid/ask icons can have textlabels that show, for example, the size (i.e. the number of shares orlots) or a related market or security statistic available to the userand associated with the bid or ask icon.

Another aspect of present invention allows a user to better comprehendthe spatial relationship between quotes in Level 2, or ECN type data, asthe display is graphical and the price axis is linear and orderly.Graphical information is comprehended faster than textual information.One advantage of a visual approach of the trading grid over a text-basedapproach of the traditional Level 2 display employs can be shown by wayof an example. In the traditional Level 2 display, the “spread” is notreadily apparent and some users may require a calculator to determineit. On the other hand, in the trading grid the “spread” is simply thevisual gap between the blue and the red rectangular icons representingthe highest bid and the lowest ask prices respectively.

This method of plotting bids and asks on the trading grid is useful totraders, and as such it can replace the traditional method of displayingNASDAQ Level 2 data, ECN market book data, and other detailed quoteinformation. In this configuration, the trading grid is typicallyimplemented as a “software object”, as described in more detailhereafter.

A further aspect of the present invention improves on the utility ofgraphical quote presentation by also allowing a “drag and drop” methodfor order placement, order modification, and order cancellation on thegraphical display. The trading grid is typically implemented as acomponent of an application program when this feature is added. Howeverthis is not always the case, as it is also possible to add this featureto a “software object” implementation of the trading grid. Thisapplication program is henceforth referred to in this document as the“front-end application” or simply “front-end”. Regardless of how thetrading grid is implemented, as a software object, or as a front-endapplication, the user interactivity is essentially identical.

Existing on-line brokerage trading accounts typically use a forms-basedapproach to allow a client to place an order. These trading systemstypically require users to go through the following routine when placingan order: (a) enter the ticker symbol, (b) enter the price, (c) enterthe number of shares or lots, and then (d) click on a confirmationbutton. This approach is also supported by the front-end of the presentinvention. Additionally, the front-end also allows the trader to use a“drag-and-drop” technique for placing orders. This technique builds onthe previously described “checkerboard” metaphor, in that the act ofplacing, modifying, and canceling an order is likened to the act ofmoving a checker piece into a position on the checkerboard, or takingthe checker piece off of the checkerboard.

A user of the present invention has a number of options when placing anew order using the front-end. One option is to use the order-entryform, in which case the user will need to go through the same routine(for both buy and sell orders) as with existing on-line trading systems.A second option is the drag and drop method of placing a buy order. Forexample: (a) click on an icon representing cash or a quantity of shares,(b) select the investment amount or the number of shares to be purchasedfor the buy order (represented by an icon) from a pop-up window orsuitable selection means, (c) drag the selected icon representing thebuy order to the column associated with the preferred market, (d) selectthe price of the buy order by positioning the icon on the rowrepresenting the desired price level, and (e) drop the icon onto thecell defined by the selected column and row.

For a sell order, the following series of steps is applicable: (a) clickon the icon representing an investment or an inventory of a security,(b) adjust the number of shares to be sold (represented by an icon) froma pop-up window or suitable selection means, (c) drag the selected iconrepresenting the sell order to the column associated with the desiredmarket, (d) select the price by positioning the icon on the rowrepresenting the desired price level, and (e) drop the icon on to thecell defined by the selected column and row. It should be apparent, thatthere may be variation in the order of these steps and some steps may beomitted, which would nevertheless, effectively accomplish order entryand order modification.

The options described above result in an order automatically transmittedto the back-end system, and an icon representing the order to be plottedon the trading grid. The order will be plotted on the columnrepresenting the specified market, and on the row representing thespecified price. As an initial convention, the order icon may bedisplayed in a Green color to distinguish it from the bid and ask icons.

The method of plotting the trader's order and the current bids and asks(which are already plotted on the trading grid) for a security, is afurther aspect of the present invention. This aspect provides the traderwith a visual correlation between his orders and the current underlyingactivity of the market.

The drag-and-drop method is further applied to the procedure formodifying an existing order, and to the procedure for canceling anexisting order. For example, to modify (or “change”) an existing order'stransaction conditions using the front-end, the user simply needs toselect the icon representing the order. It is then dragged either toanother column (market) and/or another row (price). To effect thetransaction, the user simply drops the icon on the new cell location asdefined by the selected row and column. A “change order” instruction isthen automatically transmitted to a back-end system by the front-end.The processing and back-end details of the “change order” transactionare transparent to the user.

To cancel an existing order using the front-end, the user simply needsto select the icon representing the order, and then drag and drop itoutside the area of the trading grid. An “order cancellation”instruction is then automatically transmitted to a back-end system bythe front-end. As with the “change order” transaction, the details ofthe “order cancellation” transaction are completely transparent to theuser. In contrast, for existing trading systems, the procedure formodifying or canceling an existing order typically makes use of theforms-based or a menu driven approach.

As a first preferred embodiment of the present invention, a softwareobject implementing the functionality of the “trading grid” of theforegoing discussion is described. This software object uses anobject-oriented design and is implemented using Microsoft Corporation's.NET Framework software platform and the C# programming language.However, the software object can also be implemented using othersoftware design techniques, platform, and programming languages. Forexample, an alternative implementation may use the Java platform andprogramming language. Other alternatives include Macromedia's Flashtechnology, Curl Corporation's Surge platform and Curl programminglanguage, Adobe's Scalable Vector Graphics (SVG) technology, and thelike.

FIG. 1 shows a block diagram of the trading grid as a software object.The software object, as illustrated in FIG. 1, executes on a computerand has two aspects: (1) its visual manifestation 10, which is displayedon the computer screen, and which a user sees and interacts with; and(2) its program logic, which is implemented in computer code. Thesoftware object's program logic includes six processes, which thesoftware object employs to accomplish its tasks. However, it is also tobe noted that the six processes noted below are only representative ofall possible combinations of processes that the software object mayemploy. The software object's visual manifestation is typically composedof one or more axes associated with dimensions of trading data, adrawing area, and fixed and movable GUI objects (icons, images,geometric shapes). The software object's visual manifestation is wheretrading data is graphically presented. This graphical presentation canemploy several styles. The trading grid of the foregoing discussionscorresponds to the software object's visual manifestation 10.

The software object's program logic consists of the following processes:(1) Connect process 12; (2) Retrieve process 14; (3) Transform process16; (4) Display process 18; (5) Interpret User Input process 20; and (6)Send Instructions/Receive Feedback process 22. The Connect process 12 isused by the software object to establish connections with one or moredata sources, 24. This process uses standard communication protocols,such as TCP/IP, to establish a communication link between the softwareobject and a data source. The Retrieve process 14 is used by thesoftware object to receive trading data from a data source 24. Thisprocess manages the integrity of the data packets coming from the datasource. The Transform process 16 is used by the software object toprocess the trading data it receives from data sources 24. This processperforms data transformation procedures, when necessary, on the tradingdata received from a data source.

The Display process 18 is used by the software object to plot and renderGUI objects, each one representing an order or a quote, on the softwareobject's drawing area 30. This process involves drawing the row headersand column headers; drawing the two-dimensional array of cells; plottingbids and asks using data received from the data source, plotting orderssubmitted by the user; as well as displaying other related information.The Interpret process 20 is used by the software object to receive andinterpret inputs coming from the user. These inputs may be commands tochange the graphical properties of the visual manifestation, inputs thatrequest for trading data, or they may be inputs that effect a tradingtransaction. These inputs typically come from a suitable input devicesuch as a mouse, a trackball, or a keyboard.

The Send Instructions/Receive Feedback process 22 is used by thesoftware object to generate and transmit instructions (such astransaction instructions and requests for trading data), as a result ofthe user's interaction with specific elements of the software object'svisual manifestation. These instructions are sent to the appropriatedestination depending on the type of the instruction: for exampletransaction instructions are sent to a market participant system 26,while requests for trading data are sent to a data source 24.Furthermore this process 22 is responsible for receiving feedback datapertaining to the status of the previously transmitted instructions.

A Data Source 24 is any system that can supply trading data. It can beany or a combination of the following: securities exchanges, stockmarkets, currency markets, commodities exchanges, electroniccommunication networks (ECNs), brokerage firms, data feed providers,market simulation software, and trading data published on any suitablemedia (such as CD-ROM).

A Market Participant System 26 is any system that can receive, validate,route, and possibly execute trading orders. It can be any or acombination of the following: securities exchanges, stock markets,currency markets, commodities exchanges, electronic communicationnetworks (ECNs), brokerage firms, order-entry firms, and marketsimulation software. Often times, the Data Source 24 and the MarketParticipant System 26 are one and the same system. This is the case, forexample when the Data Source is Island ECN, and the Market ParticipantSystem is also Island ECN.

FIG. 2 is a block diagram of the software architecture of a front-endapplication. FIG. 2 shows the basic software architecture of a secondpreferred embodiment upon which the methods of the present invention canbe practised. Turning now to FIG. 2, the internal architecture of thefront-end 32, and the main program therein, is shown in terms of thefunctional blocks that are operable at the front-end 32.

The front-end 32 consists of a main executable program—which acts as theoverall “controller” of the front-end—and several software buildingblocks called “components” or “objects”. In a Microsoft Windowsimplementation of the front-end, the main program is a .NET WindowsForms application, and the software components are .NET components.However, in an implementation of the front-end for other operatingsystems and application platforms, the architecture and the actualtechnologies used may be different. For example, for a UNIXimplementation, the front-end can be a Java Swing application, and thesoftware components can be JavaBeans™ components.

Unlike some monolithic Windows applications, which put together allfunctionality in a single package, the front-end of the presentinvention uses the flexibility of Microsoft Corporation's .NET Frameworktechnology to organize functionality into self-contained, reusablesoftware building blocks called “components” or “objects”. (Note: Thereis a difference between these two terms. A component is made up of oneor more objects. However, the two terms are used interchangeablyherein.) Each of these components or objects encapsulates distinctsoftware functionality, and interacts with other components throughclearly defined programmatic interfaces.

The front-end 32 is similar to conventional Microsoft Windowsapplications in that it adheres to the visual (e.g. menu structure,status bars, buttons, etc.) and behavioral (e.g. right click behavior,resize behavior, etc.) standards for Windows-based applications. Thefront-end's main executable program controls and manages theapplication's various constituent objects. Furthermore the main programcoordinates the operation of the objects, by passing messages betweenitself and the objects.

The core of the front-end however, is in the set of software objectsimplementing the application's functionality. These software objectsfall into two categories: (1) graphical objects, and (2) non-graphicalobjects. Both types of objects encapsulate software functionality, butthe graphical objects also display a visual interface. In .NET Frameworkterminology, these graphical objects are called “Windows Forms customcontrols”, while the non-graphical objects are called “.NET components”.The software objects are grouped together, according to functionality,into “layers”. As noted above, there are three layers: (1) the userinterface layer 46, (2) the object layer 48, and (3) the communicationlayer 50.

An important software object is the grid graphical object 52. It plotstrading data on a two-dimensional array of cells, which it drawsdynamically. The grid graphical object receives its data in real-time(or close to real-time) from a source of information such as a quoteserver (not shown) which resides on the back-end 44; the data however,passes through the object layer 48 and the communication layer 50 first.The grid graphical object 52 also implements the graphical placement andmodification of orders using a “drag-and-drop” method.

The grid graphical object 52 is hosted inside a container object 54, tofacilitate the grouping of multiple instances of the grid graphicalobject, discussed hereafter. The container object 54 is a graphical userinterface (GUI) element with the capability to “contain” other graphicalobjects. An example of a container object is a tab-based dialog objectcommon in Microsoft Windows-based applications.

The order entry graphical object 56 is a compound object (i.e. objectmade up of several smaller objects) which users of the front-endinteract with to post and modify an order (and its associatedparameters). The order entry graphical object 56 is also hosted inside acontainer object 58. The account and holdings graphical object 60 isanother compound object that displays summary and detailed informationabout an account. This information includes the account balance, orderstatus, account summary, etc. The account and holdings graphical object60 is also hosted inside a container object 61.

An object layer 48 is shown which groups together components thatperform business logic, and components that implement utility functions.The components in this layer: (1) validate users' actions performed onobjects belonging to the user interface layer 46; (2) translate users'actions into commands, if applicable, to be sent to any appropriateback-end system via the communication layer 50; and (3) process returnvalues, notification messages, transaction receipts, or confirmations orany other data sent by the back-end system through the communicationlayer 50. The object layer 48 serves as an abstraction layer thatshields the user interface layer 46 from the implementation of the lowerlevel communication layer 50.

Each of the graphical objects in the user interface layer 46 describedcan have a counterpart object in the object layer 48. The grid graphicalobject 52 has a quote source object counterpart 62, which encapsulatesthe logic necessary for requesting and receiving trading data such asNASDAQ Level 2 data, from the back-end system. The order entry graphicalobject 56 has an order entry object counterpart 64, which implements thelogic and business rules necessary for posting buy, sell, change,cancel, and other types of orders to the back-end system, via theoptional middleware 42. The account and holdings graphical object 60 hasan account and holdings object counterpart 66, which implements thelogic necessary for requesting, receiving, and updating accountinformation from the back-end system.

The communication layer 50 consists of components that act ascommunication “gateways” between the front-end and a back-end system 44.The communication layer 50 translates messages coming from the objectlayer into the format required by the back-end system. That translationmay be into .NET Remoting messages, but any suitable option forfacilitating communication may be chosen. It is to be noted thatalthough .NET Remoting is the primary protocol for main program 32 tomiddleware 42, communication, other suitable protocols such as SimpleObject Access Protocol (SOAP) and Winsock can also be employed.

The communication layer 50 has one or more objects that implement thelogic involved in translating requests and commands coming from theupper layers 46 & 48 of the front-end 32 into the format expected by theback-end system through the optional middleware 42. The communicationobjects also translate the data coming from the back-end system 44,through the optional middleware 42, into the format expected by theobjects in the upper layers of the front-end 32. In FIG. 2, there aretwo communication objects: the Winsock communication object 68, whichimplements the logic for remote communication using the MicrosoftWindows implementation of the Berkeley Software Distribution (BSD)Sockets protocol, and the .NET Remoting communication object 70, whichimplements the logic necessary for remote communication using the .NETRemoting protocol.

The communication layer 50 is designed to accommodate the“plug-and-play” addition and removal of communication components, eachcomponent implementing a specific type of communication protocol (e.g..NET Remoting, SOAP, Winsock) for interfacing with the back-end system44 through Communication Network 34. A market participant 36 manages theoperation of the back-end system 44 and the optional middleware 42.

It will now be seen that the front-end 32 is an important secondembodiment of the present invention, as it provides a graphicallyintuitive, fast, user-friendly application that any trader may use inorder to get stock or other security quotes, manage their account withtheir respective brokerage firm or other market participant, place,modify, or cancel securities orders, track the status of thosetransactions, and track their current account status vis-á-vis anyselected security, their cash position, and so on. Typically, thefront-end 32 operates on a Windows® platform, but not necessarily. Otherplatforms may also be employed, such as UNIX and Macintosh.

As will be discussed hereafter, the graphical display employs GUIobjects to display trading data in a dynamic fashion, very intuitively,and allows the trader to buy, sell, modify or cancel securities orders,by interacting with the front-end using any suitable pointing device,such as mouse, to drag and drop GUI objects onto the trading grid. Otherobjects 72, 74, 76 may be found on each of the respective user interfacelayer 46, object layer 48, and communication layer 50, as may bedetermined by a skilled programmer who is familiar with the technologyand features of the present invention.

FIG. 3 shows a representation of a tabs based drag and drop graphicaltrading interface of the present invention as presented and viewed on adisplay device. FIG. 3 shows the main window 1, an application title bar11, menu bar 9, toolbar 8, Accounts panel 7, Holdings status panel 2,Open Orders status panel 3, Filled Orders status panel 4, CancelledOrders status panel 5, Order Entry panel 6, status bar 73, first tabset38 showing first active tabpage 33, second tabset 39 showing secondactive tabpage 35, third tabset 40 showing third active tabpage 37,tabset separator bars 77, status icons 41, 17, 430, 45, 47 for a varietyof buy, sell, and short order types, and open order cell representations43, 440 plotted on the graphical trading grid associated with specifictabpages and securities.

Each of first, second, and third active tabpages contains a symbol inputtext box 31, a PG icon 29 with a displayed quantity recommendation,basic level 1 style quote data 51, a graphical trading grid 19 in thefirst active tabpage 33, 21 in the second active tabpage 35, and 23 inthe third active tabpage 37. Each graphical trading grid has itsassociated price axis 13, 15, 131 respectively, market “MMID” headerdata 25, 27, 28 respectively, horizontal and vertical scroll bars 75,79, and open order representations 69, 71, 63, 65 of various ordersplotted on the graphical trading grid.

The price range indicated on the price axis may be stationary or move toautomatically center the trading activity shown on the trading grid.Similarly, a double-click on the price axis or its surrounding area mayre-center the price axis price range to that of the trading activity orlast trade of the security displayed on the grid.

The last trade price 57, 67 for a security is visually indicated (forexample by means of underlined text labels) on the nominal price axis.The last trade price 55, 59 can also be visually indicated on thegraphical trading grid by means of underlined text labels or by means ofhighlighting the border of the relevant cell in the graphical tradinggrid.

Orders are represented graphically as cells on a trading grid and asicons in a status panel. For example, icons may represent open, filled,partially filled, or cancelled orders and holdings icons. To cancel anorder the order is merely dragged off its trading grid. To change andorder or market or both, the order is merely dragged and dropped to anew price point or market or both. The cells of the trading grid mayhave price labels as in 84, or they may not have price labels as in 78.

An icon representing an open order may also be dragged and dropped to alocation on the grid to effect a change in the price or market of itsassociated order cell. If an icon is present in any of the various iconpanels, such as the holdings, open orders, filled orders, or cancelledorders panel, it may be double clicked to populate a tabpage with itsassociated underlying security. If the Icon's tabpage is alreadypresent, it will become the active tabpage when its Icon isdouble-clicked or some similar action. If the Icon's associated tabpageis present but not visible or only the tab is visible, a double-click ofits associated icon it will move to the foreground and become the activetabpage of its tabset.

FIGS. 4-7 show various aspects of the interface's Order Locate and IconLocate feature used to cross reference Icons on the Status panels withOrders on the Grid. The Icon locate feature is used to locate an Icon onthe Status Panel associated with an order on the Grid. The Order locatefeature is used to locate an Order on the Grid associated with a StatusIcon in one of the Status Panels. Generally, when it comes to orders andiconic representations of orders, the term “Order” is used when the GUIobject representing an order is located on the Grid. The term “StatusIcon” is used when the GUI object representing the order is located inthe Various Status Panels to the left of the main window 1.

FIG. 4 shows an example of the Icon Locate feature. An open limit order440 on the grid 19 is shown. The order 440 is a buy order for 500 sharesof MSFT at 26.95. When the user moves his mouse (cursor) to the gridorder and right-clicks on the order 440 to select “Icon locate” from thepop-up menu (or the middle button on the mousewheel may be programmedfor such a use) for Icon Locate, then a border 400 is painted around theStatus Icon 430 in the open order status panel 3. Thus, the user hasidentified which Status Panel Icon is associated with the Open order 440on the trading grid 19.

FIG. 5 shows an example of the Order Locate feature. Multiple Icons maybe present on the open orders status panel 3. When the mouse cursor isused to right-click on a status icon 430 and select “order locate” fromthe pop-up menu item (or the middle button on the mousewheel may beprogrammed for “Order Locate” use), then a border 437 is painted aroundthe order (this order is the same grid order 440 shown in FIG. 4 to buy500 shares of MSFT at 26.95) on the trading grid 19. associated with theSecurity's Icon 430 on the open orders panel 3. Thus, the user hasidentified which grid open order icon is associated with the Status icon430 on the Open Orders Status panel 3. As shown in FIGS. 4 and 5, theuser of the interface can associate open orders present on the grid 19to open order status icons present in the open orders status panel 3.This is especially helpful if the user has multiple orders in the statuspanel area or on each grid.

FIG. 6 shows an example of the Filled Order Locate feature. A StatusIcon 435 in the filled orders status panel 4 may be clicked with a mouseto find the location on the grid 19 where the order was filled. In thisexample, the filled status icon 435 is seen to be filled at 27.30 in theARCA 25 market. The price at which the order was filled is shown by aborder 436 around the cell on the ARCA grid 19. If a Filled status iconrepresents fills at multiple locations (for example if it was a largemarket order), then multiple cell locations on the grid will show theapplied border pattern or similar visual or graphical feature. Thus theuser can reference in a convenient manner, where his orders were filledon the grid. If the price or cell is not visible, the grid will move todisplay the correct location of the filled or open order on the grid.Similarly, if the market associated with the order is not visible, itwill become visible before the cell location at which the fill occurredor open order exists is distinguished.

FIG. 7 shows an example of the Cancelled Order Locate feature. Cancelledstatus Icons 443 may be clicked to find the location on the grid 19where the order was cancelled. A border 447 is applied around the cellon the grid 19 where the order existed prior to being cancelled. Orderson the grid may be cancelled by dragging and dropping them off the gridor the grid's associated tab page. Similarly, the status icon can bedragged and dropped into a trash can icon located on the interface. Anorder may also be cancelled by right-clicking or middle button clickingon the status icon or order icon on the grid and selecting the cancelcommand. The order may also be cancelled by selecting it and cancellingthe order through the order entry panel 6.

FIG. 8 shows an example of the Holdings Order Locate feature. Asecurity's holdings status Icon 442 may be clicked to identify on thegrid, the cell locations where the various orders comprising thesecurity's inventory were filled. This information may also be presentedon a pop up list if the various fill data is too diverse and involvewide price ranges and orders which were filled in multiple markets. OnFIG. 8, the holding status icon 442, is shown to be filled at twolocations on the grid 19. A border 445, 446, and the quantity associatedwith each fill (or each price) is shown as a text label within the cell.

FIG. 9 shows an example of the Icon Locate feature when multiple openorders are present at one cell location on the Grid 19. The order orcell 432 may be clicked with a cursor 431 to find the various statusicon locations in the open orders Status Panel where the open ordericons are located. A border is painted around each open order icon 434,433 in the status panel which is associated with the cell 432 and itsopen orders on the grid 19. Orders that were cancelled or filled at thesame cell location may also have their respective icons indicated in thestatus panel area.

Turning now to FIG. 10. FIG. 10 shows data typically found on theholdings tab displayed in icon view. A Holdings panel is shown withseparate icons for each position in a given security. The significanceis that an icon representing a security holding can be dragged anddropped into its associated trading grid to effect a sell order.Likewise, any of the holding icons 133 shown in FIG. 10 can be draggedand dropped onto their respective Trading Grid. Security holdings, openorders, and the like may be categorized and grouped in status panels.For example, folder icon 135 may contain details of the user's bondholdings.

Examination of FIG. 10 shows that 500 shares of XYZ Corporation are heldin the user's portfolio; that they were purchased at 56.26. The iconsshown in FIG. 10 may be colored so as to show the type of security, thetype of order that exists, the size of the order, or the profit or lossamount associated with the investment. For example, one color may beused to represent a short order, another color used to represent anoption, or a margin purchase, or to indicate a profit or loss onindividual positions. Each icon may further have data associated with itthat may be revealed by holding a pointing device's cursor over theicon. The status bar 138 may also display data, as well as the currentmarket price for the security if elected.

FIG. 11 shows a trading interface with two tabsets and various panelsrepresenting Accounts, Holdings, Open Orders, Filled Orders, CancelledOrders, and an Order Entry panel. The Accounts, Holdings, Open Orders,Filled Orders, and Order Entry panels are all in the expanded state,while the Cancelled Orders panel is in the collapsed state. The MSFT tabis active on the left most tabset. To the right of the MSFT tab, a CSCOtab 85 is shown. Also shown are a BRUT MMID column header 83 and a JEFFMMID column header 81. Note that the price axis increments in 5 centincrements.

FIG. 12 shows a trading interface with two tabsets and various panelsrepresenting Accounts, Holdings, Open Orders, Filled Orders, CancelledOrders, and an Order Entry panel. The MSFT tab is active on the leftmost tabset, and to the right of the MSFT tab is a CSCO tab 85. When theBRUT MMID column header 83 is double clicked, the column expands 80 toshow each price point in 1 cent increments. Note that the price axisincrements in 5 cent increments and without some means to place an orderon the trading grid to the nearest 1 cent, each order would be placed ata default value indicated by the price axis. The expanded column 80allows for the precise selection of order price down to the nearest 1cent.

FIG. 13 shows a trading interface with two tabsets and various panelsrepresenting Accounts, Holdings, Open Orders, Filled Orders, CancelledOrders, and an Order Entry panel. The BRUT MMID column header 80 isexpanded to show each price point in 1 cent increments. Note that theprice axis increments in 5 cent increments. When the JEFF MMID columnheader 81 is double clicked, the column expands 82 to show each pricepoint in 1 cent increments for more precise order placement. When theprice axis for the given trading grid increments in step values such as5 cents, or 10 cents and trading is permitted between the step values,expanding market maker columns permit more precise order placement ororder changes.

FIG. 14 shows a trading interface with two tabsets and several panels,similar to that shown in FIG. 11. However, in FIG. 14, the user actionof placing the CSCO tab into a new tabset is depicted. The user clickson the CSCO tab 85 to make it the active tab 86 on the tabset and thendrags the CSCO tab to the location indicated by the visual target boxindicator 87 next to the mouse cursor 116, and then drops the tab atthat location to create a new tabset.

FIG. 15 continue the progression shown in FIG. 11 and FIG. 14. Indicatedon FIG. 15 is a new third tabset in the middle of the original twodepicted in FIG. 11. The tabset is comprised of a single tab for CSCO88. Note that the CSCO tab 85 shown in FIG. 11 has been removed and isnow represented by the CSCO tab 88. Tabs for securities, for exampletabs 85, 88 may be dragged and dropped between tabsets and within eachtabset by the user to organize their trading activity. Multiple tabsetsmay be created and resized by the separator bars between tabsets.

The Replay Feature provides a graphical playback of historical tradingactivity and market data and on a grid. Such historical data playbackrequires a source of archived (historical) quote and/or order data froma user's computer or an alternative source. If the historical data isnot available on the user's PC it may be downloaded from a onlineservice provider.

The Replay Feature can record trade and quote data for securities duringa trading session and it stores the trade data so that users can“playback” the market activity on a suitable grid viewer such as that ofFIG. 19. The user can select which time of the trading session toplayback from and how fast the animation proceeds. The trading activitymay vary from a real-time speed to a fast speed such as for example, 100times normal speed. The Replay animation interval can also be fixed aspecific time such as, for example, 2 minutes, regardless of the lengthof the original time interval. The user can choose to store historicaldata locally through the Replay record function which can store the dataon the computer's hard drive.

FIGS. 16-18 show the Replay Feature configuration settings panel of theinterface 90. FIG. 16 is a representation of the Replay Feature “TimePeriods” tab page 98 which permits the user to select historical marketdata from a predefined time period to Replay based on an event ID 95, orbased on a start time and start date 91 and the stop time and stop date92. The securities symbol is entered or selected from a drop down listso only historical or recorded data specific to the specified security94 is downloaded and Replayed. The Replay time duration is alsospecified in hours, minutes, or seconds 93. Settings are effected bypressing the apply button 96 and the data retrieve process begins whenthe start button 97 is pressed.

FIG. 17 is a representation of the Replay Feature “Format” tab page 99which permits the user to select the specific market data to be playedback such as the data to be shown on the grid (i.e., bid quotes, askquotes, trades, grid orientation, price labels, and the like).Checkboxes on the Playback Format tab 101 permit such selection.

FIG. 18 is a representation of the Replay Feature “Advanced” tab page100. This tab page allows the user select filter settings 102 to limitthe historical data downloaded from the Data Source provider's site 103or to limit the amount of data displayed during the Replay animation.Downloaded data may be saved as a file using the Save Data button 106.

The technical indicator button 105 permits the user to selectivelycalculate and display on the grid a number of technical indicators suchas various moving averages. Marker and indicator cells may also be shownon the Replay grid 107.

Text labels associated with each cell's data may be switched on or offby the user. For example, the quote size or last trade size can bedisplayed for the duration of the animation. When bid and ask quotesappear and disappear on the Replay grid 107, the last trade cell 111 andthe bid and ask cells 114, 113 respectively, instantly turn on and off.The data persistence settings button 104 allows the user to lengthen theduration of the graphical “on” and “off” quote and last trade timeswithin a cell to appear and disappear at a slower rate so the dataappears to persist within each cell. Similar effects are seen on mediaplayers when they playback music.

FIG. 19 is a representation of the Replay Feature playback tab page 108.The Replay Feature records and saves securities trading data forplayback and analysis for one or more securities. The Replay playback istypically implemented on grid 107 in real time or accelerated time. Thehistorical trading activity graphically presented on grid 107 mayinclude details of the bid and ask quote prices 114, 113 respectively,and other pertinent data such as the last trade price 111. Technicalindicators such as the 50 day moving average price 112 may be seen onthe grid 107. A visual indication of the last trade price 111 may alsobe shown along the price axis 115. The Replay animation may be startedby pressing start button 109 and paused by pressing pause button 110.Other buttons such as the stop, rewind, and fast forward buttons arealso used to control the playback animation.

FIG. 20 is a representation of a Level 1 quotes tab page 200. Thecontent of specific tab pages may be identified by an appropriate textlabel 201. A column header 203 displays the nature of each columns data.Under each security symbol listed, there may be a hyperlink 202 to allowthe user to access security specific research or to populate a grid withthe associated symbol for convenience.

FIG. 21 is a representation of a chart tab page 205 as it may beimplemented on the graphical trading interface. Clicking on features orlinks on the chart may open subsequent tab pages or windows with addedcontent specific to the security or the markets. Content viewed on tabpages may be moved by drag and dropping the tab page within a tabset,between tabsets, or creating a new tabset. The tab page content may alsobe saved as a file and closed or deleted.

FIG. 22 is a representation of a Nasdaq Level 2 tab page 210 as it maybe implemented on the graphical trading interface. Such securityspecific content allows a trader to gain added insight on the marketbehaviour of a specific security.

FIG. 23 is a representation of a options tab page 215 as it may beimplemented on the graphical trading interface. Options quotes for aspecific option may be populated on a grid by double-clicking on theoptions symbol.

FIG. 24 is a representation of a company profile tab page 220 as it maybe implemented on the graphical trading interface. “Pay per use” orsubscription content is supported on the trading interface. Suchservices may be specifically indicated by a prefix or suffix symbol onthe tab 221.

FIG. 25 is a representation of a Fund profile tab page 225 as it may beimplemented on the graphical trading interface. Mutual funds and ETFsmay be researched prior to purchase by the user. Such research and tabpage content may be saved as a separate file for later reference.

FIG. 26 is a representation of a company Reference tab page 230 as itmay be implemented on the graphical trading interface to allow the userto research securities before purchase or sale. Such services may beprovided by the online brokerage free of charge, and a nominal charge,or from third party sources of such data by subscription.

FIG. 27 is a representation of a News tab page 235 as it may beimplemented on the graphical trading interface. Such a feature allowsthe user to be kept up to date on the latest market developments. TheNews tab page may be configured to filter content for specificsecurities or industry sectors. The news content may be pushed to theuser and automatically populate a tab page.

FIG. 28 is a representation of an online chat tab page 240 as it may beimplemented on the graphical trading interface. The user may view a listof which of their contacts 241 are presently online. Text messages aretyped in the text input area 242. The user may also engage in video“webcam” or audio communications with other users.

FIG. 29 is a representation of a market analysis tab page 245 as it maybe implemented on the graphical trading interface. Such content may befree of charge or subscription based and may electively or automaticallypopulate a tab page when it is received by the user's interface.Advertisement content 246 may be present in such analysis reports.

FIG. 30 is a representation of a multimedia player tab page 250 as itmay be implemented on the graphical trading interface. Video clips andreal time video and audio content may be viewed on the media player 252.Real time market analysis may also be selected on a drop down list 253.Such content may be sponsored by existing sources of market news andsuch sponsors may display their service mark or corporate logo on thetab 251 for convenient reference by the user.

FIG. 31 is a representation of a notepad tab page 255 as it may beimplemented on the graphical trading interface. Such a tab page may beused to collect content, write analysis, and clipboard data throughoutthe trading session. A toolbar and menubar 256 facilitate suchfunctions.

A preferred implementation of a trading interface includes anextensibility framework for easily augmenting or replacing one or morefunctionalities of the trading interface. Such extensibility frameworkenables the seamless integration of third party software into thetrading interface. The extensibility framework typically includes anApplication Programming Interface (API) that allows third party softwareto be incorporated as “plug-ins” into the trading interface, andcontainer objects that function as visual “containers” for the thirdparty software that are plugged into the trading interface. The tradinginterface of the present invention uses tab pages as default containerobjects; however other forms of container objects can also be used suchas panels, toolbars, child windows, and the like.

FIG. 32 is a representation of a spreadsheet tab page 260 as it may beimplemented on the graphical trading interface. The tab 261 indicatesthe function of the tab page when the tab page is hidden from view. TheExcel worksheet provides a convenient place to analyze, manipulate, andsave securities data.

FIG. 33 is a representation of a download tab page 265 as it may beimplemented on the graphical trading interface. The sponsor of thecontent may be indicated on the tab 266. Such download links 267 andsoftware patches may be automatically populated on the interface withina tab page to conveniently keep user's software up-to-date with thelatest patches and security features without requiring the user to visita website from a dedicated browser application.

FIG. 34 is a representation of an online banking tab page 270 as it maybe implemented on the graphical trading interface. The bank logo 271 istypically present on the tab. Such a service is especially convenientwhen the user's brokerage is associated with a bank. The integration ofboth banking and brokerage accounts allows the user to access onlinebanking services or move funds from their banking accounts to theirtrading accounts from one application.

FIG. 35 is a representation of a newsletter tab page 275 as it may beimplemented on the graphical trading interface. The newsletter logo 276or corporate identity may be displayed on the tab 276. Such content maybe supported with advertising content 277 and closed using close button278. The user may register for such services from a website or directlyfrom the interface. It should be understood that targeted subscriptioncontent directed to the user may be offered on a trail basis or as apromotion by the brokerage or content provider and that the brokeragemay derive revenue for allowing such content to be made available to theuser.

FIG. 36 is a representation of targeted educational advertisement tabpage 280 as it may be implemented on the graphical trading interface. Ifthe user chooses to order any services or products from a tab page onthe interface, the user may be directed to provide their billinginformation, visit a website to provide such information, or authorizeany fees to be deducted from their brokerage or online banking accounts.

FIG. 37 is a representation of a promotional subscription styleadvertisement 285 as it may be implemented on the graphical tradinginterface. The brand logo is visible on the tab 286. A single button 287allows the user to authorize their brokerage or the software interfaceto provide the vendor with the necessary user contact and billingdetails to facilitate the order.

FIG. 38 is a representation of a targeted banking promotion tab page 290from the online brokerage, their associated bank, or a third partyfinancial institution as it may be implemented on the graphical tradinginterface. The brand or corporate logo is visible on the tab 291 and asingle button 292 may be used to facilitate the user's authorizationwithout requiring the user to fill out a form manually.

FIG. 39 is a representation of a travel or leisure promotion tab page295 as it may be implemented on the graphical trading interface. Thebrand logo is visible on the tab 296. The service or product offered maybe determined by the user's account details such as their age, netincome, trading performance, portfolio value, cash balance, and the likewhich in a targeted situation, may be provided by the online brokerage.

FIG. 40 is a representation of a targeted financial newspaper promotiontab page 300 as it may be implemented on the graphical tradinginterface. The tab area 301 is visually larger and distinct fromstandard interface tabs. The brokerage firm derives additional revenuefrom the larger size and more distinct appearance of the tab 301 whichis designed to attract the attention of the user. A customized button302 on the tab page allows the user to receive promotional content.

FIGS. 41-46 show how the Icon Packing feature is implemented. In theexample of FIG. 41, the Holdings status panel 2 which has only two iconshas two empty rows available for icons. In contrast, the Filled Ordersstatus panel 4 has more icons than display area and hence a scroll bar120 has appeared. As a result, the lower part of the Order Entry panel 6is obscured from view. The hidden lower part 137 of the Order Entrypanel 6 can be scrolled into view via the scroll bar 136. Likewise, thehidden icons in the Filled Orders status panel 4 can be scrolled intoview via the scroll bar 120. It may be noted that the presence of thescroll bars 120 and 136 make the screen layout less estheticallypleasing.

The correct icon packing is shown in FIGS. 42, 44, 46 and depicts howthe three panels are resized vertically to accommodate the empty rowsmore evenly and thus improve the appearance and icon distribution withinthe panels. What we have in the corrected version is a pleasing, welllaid out grouping of icons. Hence, there are no scroll bars to distractthe user, and that the once hidden lower part 137 of the Order Entrypanel 6 is in full view.

Although the total vertical height of the three status panels (Holdings,Open Orders, and Filled Orders) is fixed, the empty spaces in each ofthe panels can be distributed to lessen the unwanted free space andthus, minimize the chance of the scroll bar from appearing. The less thescroll bar appears, the more pleasing the panels will look. Also, byadjusting the height of each panel, the panels become aestheticallybalanced. There is a set number of pixels assigned to each of thepanels, such as measuring the number of pixels around the icons inrelations to the title bar, the symbol, and the top of the icon.

FIGS. 42, 44, and 46 show how to distribute the free space under thelowest icon of a panel, a feature of correct icon spacing. Each iconcorresponds to a specific number of pixels, for example an icon andtitle is assigned 34×34 pixels. Knowing this, the number of pixels inthe free space below the lowest icons (icons are arranged starting fromthe top in rows), can be determined so that the total number of pixelsavailable in the free space can be assigned an icon.

In a prototype of the trading interface of the present invention, a 4×4icon per panel spacing is recommended. This means 4 icons can be placedin each row and 4 rows can be placed in the default panel size.

In FIGS. 41, 43, and 45, we see empty spaces with corresponding pixelnumbers (representing the height of the free space) in the Holdings andFilled Orders status panels. FIG. 41 shows empty space 121 below a rowof icons in the Holdings status panel 2. FIG. 43 shows empty space 122in the Holdings status panel 2, empty space 123 in the Open Ordersstatus panel 3 and empty space 124 in the Filled Orders status panel 4.FIG. 45 shows empty space 117 in the Holdings status panel 2, emptyspace 118 in the Open Orders status panel 3 and empty space 119 in theFilled Orders status panel 4.

In FIGS. 42, 44, and 46, the adjusted status panels are shown using iconpacking. The number of pixels in the empty spaces has been reduced tomake the overall arrangement more pleasing to the eyes and easy to read.FIG. 44 shows reduced empty space 125 in the Holdings status panel 2,increased empty space 126 in the Open Orders status panel 3, and reducedempty space 127 in the Filled Orders status panel 4. FIG. 45 showsreduced empty space 128 in the Holdings status panel 2, increased emptyspace 129 in the Open Orders status panel 3, and increased empty space130 in the Filled Orders status panel 4.

The status panels in FIGS. 42, 44, and 46 indicate a reduced chance thata scroll bar will appear given the space constraint of the status area.Correct icon spacing determines how much empty space under the lowesticon can be distributed in a balanced and aesthetic manner so that theappearance of the scroll bar can be minimized or avoided.

Corporate logo icons may be used in the same manner as the interface'sdefault drag & drop icons and status icons. The default Icon may stillbe used for security symbols where the corporate logos are not availablefor use on the trading software. The Icons in the open orders, holdings,filled orders, and cancelled orders status panels can be images of thecompany logos representing the underlying security. The corporate logoicon size may vary according to the dollar value of share size of theopen order or holdings. For example, the larger the size of the icon,the more significant the dollar value of the trade. The size of thestatus icon and the color of the status icon may also vary so that iconsize or icon color may be associated with the dollar value profit orloss on a specific trade, the percentage returns associated with aspecific trade, or the overall portfolio performance for a givensecurity.

FIGS. 47A and 47B show corporate logos used as status icons within thestatus panel area of the interface. Corporate logos or other relatedsymbols associated with the underlying security may be displayed, asshown in the Holdings 2, Open Orders 3, Filled Orders 4, CancelledOrders 5 status panels of FIG. 47A. Logos of a standard size are shownfor HP 145 and DELL 144. If Corporate logos are used, a text label forthe symbol below the icon may not be necessary and may be disabled. If aCorporate logo is not available or permission is not given to use it, adefault icon 146 is used in its place.

FIG. 47B also shows corporate logo icons in the status area. However,the size of the icons vary according to the size or dollar value of theholdings or orders. Thus the HP 140 and DELL 141 holdings are shown tobe different in terms of quantity, dollar value, or some relatedparameter. Similarly, the AAPL open order 142 is shown to be smallerthan the HP 147 open order (the user, the interface, or the brokerageconfigure which parameter of a security determines the icon sizedifferences; See table 370 of FIG. 56). Filled orders such as HP 143 andcancelled orders may also be related visually in terms of their relativesize.

Corporate logo Icons may also be dragged and dropped on the grid anddisplayed on the grid as an order icon. The Logo Icons function with theorder locate and icon locate features similar to regular (default) iconshapes.

Status Icons associated with Status panels 3, 4, 5, and the like, mayappear to be “stamped” with text images which emulate a “hand stamp”.The stencilled representations of words such as “FILLED”, helps users toguage the status of their various open and filled orders. The order type(for example, buy, sell, or short) may also appear stamped on a defaulticon image. Cancel orders may also be indicated as such.

FIGS. 48A and 48B show status icons which are stamped as to their ordertype (buy, sell, short, and the like), or status (filled, cancel,partial, and the like). Shown in FIG. 48A is a default icon body 150with a “SELL” stamp image 151 associated with a security symbol 152. Foran Option order Icon 153, “OPEN” and “CLOSE” or “opened” and “closed”text labels may be used to indicate order status.

Shown in FIG. 48B is a default status icon image 155 with a morecomprehensive stamp image 156 applied to it. The icon and its stampedimage is associated with a security symbol 152. A variety of example“stamped icon” presentations are shown in FIG. 48B, including stampswhich reference to an order type 149, an order status 148, an orderdesignation (a “MARKET” order 154; a “LIMIT” order 158), a limit price157, an options order 153, or an option series type and quantity (“50CALL” contracts 159).

A crossed market occurs when the bid price is higher than the ask price.Often, a crossed market occurs when multiple market bid ask quotes areaggregated into a common display. A locked market occurs when the bidprice is equal to the ask price.

FIG. 49 shows a crossed market situation on the Grid 19. The bid cell161 at a price of 27.42 is higher than the ask cell 160 at a price of27.40 (the price is indicated by a text label on the bid cell and on theask cell). There is also a last trade graphical indication (anarrowhead) at price 27.41. The user has configured their price axis 13to show the last trade price as a text label within the price axis cellclosest to the last trade price. A last trade graphical indication (anarrowhead) is also shown on the price axis cell.

In a crossed market situation, having a bid cell (a bid cell typicallypresented as a distinct color such as blue) above an ask cell (an askcell is typically presented as a distinct color such as red) may beconfusing for some users as it may appear as if the software program ismalfunctioning. The trading interface allows the user to configure theinterface to show the cells affected by the crossed or locked market ina visually distinct color. For example while bid cells are typicallycolored blue and ask cells are typically colored red, the crossed marketcells (where the read and blue cells overlap) may be colored in avisually distinct color, for example, yellow.

FIG. 50 shows the crossed bid cell 161 and ask cell 160 of FIG. 49 witha crossed market indication. The bid cell appears in a distinctivecolor, for example yellow, indicated at 163, and the ask cell appears ina similar distinctive color indicated at 162 in FIG. 50. Thus the usersees the distinct color associated with a crossed market and there isless confusion associated with the crossed market event when it ispresented visually on a grid 19.

In the case of a locked market, in which both the bid cell and ask cellare at the same price (or when the bid price and ask price are bothrepresented within the price range associated with a single cell), thesame visually distinct cell color may be applied (for example a yellowcolor) to the cell. It should be understood that any visual distinctionsuch as font size, font style, text labels, and additional graphicalelements may be used to indicate a crossed market, a linked market, andbid and ask prices within a common cell.

FIG. 51 is representative of the Position Guide Direct Output Settingspanel. The Direct Output Settings panel provides a intuitiveconfiguration method for allocating an investment amount for a given PGinput security based on the security's symbol, sector, asset class,index association, listing exchange, and the like. In settings area1493, the first column, the input criteria column 1490, indicates theinput criteria or input category type for which each investment amount1497 in each row 1492 is designated. For each input criteria or inputcategory type, one or more columns are shown for entering the designatedinvestment amount allocation by order type. For example, shown arecolumns for designating a buy order amount 1496, a sell order amount1498, and a short order amount 1500. It should be understood that newcolumns may be created for additional order types, and that a singlecolumn may contain the designated investment amount data for more thanone order type. For example, a single column may be configured to entera designated investment amount for both sell and short order investmentamounts.

It should be understood that each of the buy, sell, and short ordercolumns may be separated and presented visually within its own tab page.Similarly, the tab sets may be arranged according to the asset class ofthe PG input security. The segmented tab set may be presented to furthersegregate PG input security symbols and their designated investmentamounts by their respective asset class.

There is also a column for designating a portfolio amount limit 1502 foreach input criteria or input category row or cell. A Portfolio Amount isthe total value of a PG input security or input category type the usermay maintain or hold in his overall portfolio. The portfolio amount orportfolio investment amount, limits the value or proportion of a givensecurity in the user's overall portfolio. A Settings button 1512 isshown to indicate access to more advanced configuration options for theSettings panel.

Each input cell within the settings area 1493, may be edited byselecting the cell and entering or modifying the data inside the cell.Data and values for a selected cell may also be entered or editedthrough input box 1506. For example, if “Microsoft Corporation” or“MSFT” 1492, is input to the Position Guide, the PG will recommend a buyshare quantity equivalent to $14,000, the designated investment amount1497 input by the user or a third party for a buy order. This buyinvestment amount is indicated in selected cell 1497 and input box 1506.Similarly, the user may specify a sell order amount and a short orderamount for “MSFT” in each order type's column 1498, 1500 respectively.

The PG icon 1504 displays the PG Output quantity for a given PG inputsecurity. The given PG input security may be selected from the settingsarea 1493, the PG Input Symbol area 1495, or the grid proper tab page.Formulas, variables, template names, table names or table symbols, andscripting language commands may be entered in select input cells tofurther facilitate a suitable PG Output quantity recommendation.

When formulas, variables, template names, table names or table symbols,and scripting language commands are entered in input criteria column1490, the resulting output amounts of the formulas, variables, templatenames, table names or table symbols, and scripting language commands,for a given PG input security, may be displayed in any investment amountcolumn such as buy order column 1496. The PG input security 1495 isavailable as input into the formulas, variables, template names, tablenames or table symbols, and scripting language commands. If theformulas, variables, template names, table names or table symbols, andscripting language commands are not configured or intended for aspecific order type, asset class, or a given PG input security, theoutput value of the formulas, variables, template names, table names ortable symbols, and scripting language commands will not be computed ordisplayed in their respective buy, sell, or short investment amountcolumns 1496, 1498, 1500.

Formulas, variables, template names, table names or table symbols, andscripting language commands may be entered in an investment amountcolumn, such as buy amount column 1496, as well as the Input Criteria'scolumn 1490. This approach also limits the calculated formulas,variables, template names, table names or table symbols, and scriptinglanguage commands output amounts to the specific cell of the investmentamount column where the formulas, variables, template names, table namesor table symbols, and scripting language commands have been entered.

In this situation, only PG input symbols which match the security symbolor the Input Criteria 1490 are subsequently input into the formulas,variables, template names, table names or table symbols, and scriptinglanguage commands to derive an output value. This approach effectivelyfilters the PG input symbol 1495 through the input criteria column 1490so that the PG input security 1495 is only input into the formulas,variables, template names, table names or table symbols, and scriptinglanguage commands, if the Input Criteria cell in column 1490 has alreadyaccepted or validated the input security for a given input criteria.

If an Index symbol is entered in a cell of the input criteria column1490, it should be understood that the Index symbol is merely aconvenient method of indicating that the associated investment amountfor a given order type is intended for each of the index's componentstocks. For example, the OEX index symbol 1514 shown in the InputCriteria column 1490, indicates that each PG input security which alsohappens to be a component of the OEX index will be allocated ordesignated an investment amount of $12,000, as shown in adjacent cell1515, if the intended order is a buy order.

The units and formatting of each column and cell may be adjusted with aright-click operation on the column header or cell. For example, a sellamount may be specified in share units rather than a dollar denominatedvalue.

Occasionally, for a range of input criteria indicated under the InputCriteria column 1490, the Position Guide may detect more than onequalified input criteria for a given PG input security. In FIG. 51, forexample, the PG input security is “MSFT” and this results in four inputcriteria matches, each with their respective investment amounts for abuy order indicated in column 1496. The first qualified or satisfiedinput criteria corresponds to the “MSFT” symbol 1492 as this is the PGinput security symbol; the second satisfied criteria corresponds to the“EQUITY” category 1494, as MSFT is an equity security; the thirdsatisfied criteria corresponds to the index symbol “OEX” 1514, as MSFTis a component stock of the OEX index; and the fourth satisfied criteriacorresponds to the “NASDAQ” symbol 1517, as MSFT is also a Nasdaq listedsecurity. The four corresponding PG buy order investment amounts forthese four satisfied input criteria are: $14,000 for the “MSFT” PG inputsymbol 1497, $10,000 for the “EQUITY” input category 1499, $12,000 forthe “OEX” input category 1515, and $10,000 for the “NASDAQ” inputcategory 1518.

The Multiple Investment Amounts section 1516 permits the user to selectthe method used when, for a given PG input symbol 1495, more than onevalid input criteria or input category type 1490, results in more thanone valid corresponding investment amounts for a given order type.Generally, the investment amount associated with the highest satisfiedcriteria or highest row position that matches an input criteria 1490 fora given PG input security 1495 is chosen as the final investment amount.In FIG. 51, this position rank method of handling multiple valid inputcriteria is selected 1516. For example, since the “MSFT” input criteria1492 has the highest position rank of the four satisfied input criteriain the input criteria column 1490, the final investment amount is$14,000. The Position rank approach to multiple satisfied input criteriapermits the user to position the higher priority security symbols andinput criteria near the top of the input criteria list 1490.

Alternatively, when there are multiple satisfied input criteria for agiven input security, the final investment amount may be the minimum,maximum, median, mode, or average of their various associated investmentamounts. Similarly, an alternative ranking method may provide that a PGinput security's symbol in the input criteria column 1490 has thehighest priority, followed by an index symbol if the PG input securityis a component, followed by the sector type to which the PG inputsecurity belongs, followed by the asset class of the PG input security,and the like.

The Position Guide Settings Priority area 1491 permits the user toselect which PG Output Settings panel takes priority when the PG detectsa conflicting configuration between two or more settings panels. Theuser may access the Settings panel from a html link to edit theconflicting settings information.

The relevant PG input security price 1511 that is used to calculate thePG Calculation quantity may be selected from the drop down listassociated with the PG Price denominator 1510. The PG Price Denominatormay be the limit price of the intended order, the last traded price, orthe high, low, bid, ask, or opening price for the security. An “AUTO”setting in the drop down list permits the relevant security price 1511to be adjusted automatically for each order type. For example, in the“AUTO” setting, an intended buy order may use the ask price of the PGinput security before the order is placed on the Grid Proper. Once theintended Order is dragged onto the Grid Proper, the corresponding limitprice is used as the relevant security price. The final investmentamount as derived from the settings area 1493 is divided by the relevantsecurity price 1511 to determine the PG Calculation quantity 1519. Forexample, the derived investment amount for “MSFT”, as discussedpreviously is $14,000, and this amount 1497 is divided by $55.13, therelevant security price for “MSFT”, to calculate the PG Calculationvalue of 253.94 shares. The decimal PG Calculation quantity undergoesoutput conditioning and the final value is subsequently displayed in thePG icon 1504 as the PG Output quantity.

For convenience, the PG Output quantity corresponding to each cell'sinvestment amount may be displayed inside their respective investmentamount cells, for example 1497. The Cell Display radio buttons areprovided for this purpose 1508. To view the PG Output quantity, in shareunits, inside each suitable cell, the “PG Output” radio button isselected.

FIGS. 52A and 52B illustrate the hand-grab feature used to move the grid21 and its associated price axis 15 up or down as desired by the user toview trading activity on a different portion or price range of the gridor to manually align the trading activity on the grid 21. In FIG. 52A,the open handgrab icon 165 is positioned in the lower part of the gridprice axis 15. The grid price axis 15 is subsequently grabbed and movedhigher up the grid as indicated by closed handgrab icon 166. The usermay repeat the handgrab action as desired. Note that the last tradeprice indication 57 on the price axis has moved higher from FIG. 52A toFIG. 52B.

When the grid 21 is moved up and down or left and right, the marketheader 27 and the price axis 15 typically remain stationary with respectto the tab page. The cells of the grid 21 and their associated gridlinesmay move as if the grid is a window and being moved as such, or thecells and gridlines may appear stationary on the grid and only the textlabels and visual indications of trading activity appear to move. Suchis the case in speadsheet programs such as Excel in which the column androw headers, and the cells appear stationary while the data or textlabels inside the cells move in row and column increments. Typically,such graphical options including the handgrab options are configurableby the user.

The handgrab functionality may also be used to move the grid left orright if applicable. For example, when multiple markets are quoted, andeach market is in their respective column, or when the grid or tab pagepanel width is constrained by other tabsets being present on theinterface.

It should be understood that the grid may also be moved left and rightby horizontal and vertical scroll bars that may appear adjacent to thegrid (if such scroll bars are needed depending on the extent of the dataavailable or configured for the grid). Generally, the handgrab featurewill disable the scroll bars to maximize the visible grid area.

The price axis may also be centered relative to trading activity bypressing a centering button on the grid, or accessing such a featurethrough the menu bar, the tool bar, the grid, the tab page, or using aright-click, mousewheel, or programmable button on a mouse. Similarly,the priceaxis can be centered with respect to trading activity or someother parameter such as the mid-point spread, the last trade price, themidpoint trading range, and the like by double-clicking on the priceaxis itself.

FIG. 53A shows an example of advertisements that are typically displayedto users of software applications that are configured to receiveadvertisements. FIG. 53B shows the main window 1 of a trading interfacewith specific areas highlighted to indicate where advertisements may bedisplayed. It is to be noted however that online advertisements can alsobe shown in other areas of the trading interface.

As shown in FIG. 53B, advertisement can be displayed in a toolbar 171,in its own panel 173, in the lower part of a panel 172, in a tab 175, inthe top part 174 above the level 1 information display of a tradinggrid, in the lower part 176 below the grid proper of a trading grid, orthe top part 177 of a trading grid with the level 1 information displayhidden.

FIG. 54A shows an example of a scrolling ticker 180 that displaystrading-related information. FIG. 54B shows the main window 1 of atrading interface with specific areas highlighted to indicate wherescrolling tickers that show trading-related information may bedisplayed. It is to be noted however that scrolling tickers can also beshown in other areas of the trading interface.

As shown in FIG. 54B, advertisement can be displayed in a toolbar 181,in its own panel 183, in the lower part of a panel 182, in the top part184 of a trading grid with the level 1 information display hidden, inthe top part 185 below the level 1 information display of a tradinggrid, in the lower part 186 below the grid proper of a trading grid, orin a panel 187 that is docked at the bottom of the trading interface.

FIG. 55 shows a flowchart depicting an algorithm for implementing theicon packing feature in a software application such as the tradinginterface of the present invention. Note that other algorithms forimplementing icon packing may also be used, without departing from thebasic concepts of the icon packing feature. The flowchart comprises thefollowing steps:

The Start step 401 represents the starting point of the algorithm. TheFor All Panels That Are Expanded, Determine The Number Of Blank Rowsstep 403 involves looping though all expanded panels and computing thenumber of blank rows for each expanded panel. The Choose A Pair OfExpanded Panels That Have Not Yet Been Processed step 405 involvesselecting two expanded panels that have not yet been processed by thealgorithm. The Subtract The Number Of Blank Rows In One Panel From TheNumber Of Blank Rows In The Other Panel step 407 involves computing thedifference between the number of blank rows in one panel from the numberof blank rows in the other panel. The Get The Absolute Value Of theResult From the Previous Step step 409 involves determining the absolutevalue of the difference computed in the Subtract The Number Of BlankRows In One Panel From The Number Of Blank Rows In The Other Panel step407. The Is The Absolute Value is Greater Than 1? step 411 represents adecision point. If the result of the decision is No, the algorithm goesback to the Choose A Pair Of Expanded Panels That Have Not Yet BeenProcessed step 405. If the result of the decision is Yes, the algorithmproceeds to the Increase The Height Of the Panel With The Smaller NumberOf Blank Rows By One Row step 413.

The Increase The Height Of the Panel With The Smaller Number Of BlankRows By One Row step 413 involves increasing the height of the of thepanel with the smaller number of rows to accommodate one additional row.The Decrease The Height Of the Panel With The Larger Number Of BlankRows By One Row step 415 involves decreasing the height of the of thepanel with the larger number of rows to remove one row.

The Are There More Pairs Of Expanded Panels That Have Not Yet BeenProcessed? step 417 represents a decision point that checks whetherthere are still pairs of expanded panels that have not yet beenprocessed. If the result of the decision is Yes, the algorithm goes backto the Choose A Pair Of Expanded Panels That Have Not Yet Been Processedstep 405. If the result of the decision is No, the algorithm goes to theEnd step 419. The End step 419 represents the end point of thealgorithm.

FIG. 56 displays a table 370 showing how icon size in the status panels380 may be proportional to a parameter of the security or trade. Thesecurity is shown in column 371. For example, the icon size of eachholdings or of each open, filled, or cancelled order may vary accordingto the share quantity of the underlying trade 373, the dollar value ofthe trade 374, an average of the dollar value and share quantity sizes,the underlying share price 372, and the like.

FIG. 47B is based on the varying relative icon area shown in thequantity column 377 of FIG. 56. For example, the relative icon size ofthe holdings icons for HP 140 and DELL 141 in the holdings status panel2 of FIG. 47B is shown in the HP row 382 and the DELL row 384 of Table370 in FIG. 56. The relative icon sizes of HP 140 and DELL 141 seen inFIG. 47B is proportional to the share quantity of each holdings and theactual icon unit size is shown in data area 385 of table 370 of FIG. 56.The icon unit size shown in columns 377, 378, 379, and 381 valued may beadjusted to LOG or LN values in there are significant proportionaldifferences between the trades or holdings of different securities.

The relative icon area reference 376 may also be related to the dollarvalue column 378, an average of the dollar value and the quantitycolumns 379, and the share price column 381. The relative size thestatus icons shown in columns 377, 378, 379, and 381 may be related tothe default icon size shown in column 375.

Cells on the grid may show data associated with a given value or rangeof values. Typically, the data displayed within a cell is associatedwith one or more specific securities, one or more specific markets, oneor more specific order types (such as a buy, sell, or short order), anda specific price or interval of prices. Generally, each cell on the gridrepresents a distinct price or range of prices for a given market andsecurity. Typically, the price difference between adjacent sequentialcells is the MPV or minimum price variance of the traded security. Theuser may adjust the price interval of each cell manually, or theinterface may do so automatically according to the underlying price ofthe security, the activity and volatility of the trading activity, andthe like. The actual cell price interval chosen may also vary by countryand currency.

FIG. 57 shows a table 190 with examples of the cell price interval andcell price range options associated with a given cell on the grid. TheCell Price Interval column 191 represents the typical price intervalsavailable to the system. Column C 194 represents the nominal (ordisplayed) price text label (if the price text label is enabled) for acell. The values in the columns A 192, B 193, C 194, D 195, E 196 arefor illustrative purposes. Given a 0.010 cell price interval as shown atrow 197, the user may choose from the following price interval rangesreferenced by column header: [C, E), [B, D), (B, D], or (A, C]. Theactual values are in row 197. Similarly, if the user chooses a 0.050cell price interval at row 198, the interval will expand as shown alongrow 198 for each price interval range referenced by column header: [C,E), [B, D), (B, D], or (A, C]. Referring to FIG. 57, it can be seen thatthe number of cells required to display a given range of security pricesdepends on the user to some extent. The user can choose to view a $1.00trading range on the grid as 100 cells (as shown at 197 on table 190) oras 20 cells (as shown at 198 on table 190), or as some other cell priceinterval.

FIG. 58 shows the architecture of an Advertisement Targeting System foronline trading. An Online Brokerage 330 can operate an AdvertisementTargeting System 310 to deliver targeted advertisements to its customersvia the Front-end Trading System 350 used by the customers of the OnlineBrokerage 330. The Advertisement Targeting System 310 is typicallydistinct from the Online Brokerage's 330 Back-end System 328, which istypically responsible for processing transactions, delivering quotefeeds, and other related functionality.

The targeted advertisements produced by the Advertisement TargetingSystem 310 are typically delivered to the Front-end Trading System 350using a middleware Application Programming Interface (API) whosecomponents are shared by the Back-end System 328, the AdvertisementTargeting System 310, and the Front-end Trading System 350. Themiddleware API 332 which is installed close to the Back-end System 328,and the middleware API 346 which is installed with the Front-end TradingSystem 350 typically implement optimized functions for deliveringtargeted advertisements to the Front-end Trading System 350.

The Online Brokerage 330 maintains a User Profiles 312 databasecontaining detailed information about its customers. The OnlineBrokerage 330 also maintains an Ad (i.e. Advertisements) Pool 314containing advertisements that are generated in-house, andadvertisements that are outsourced from third party companies such asThird Party Ad Provider 340. The User Profiles 312 database and the AdPool 314 are inputs to the Advertisement Targeting Engine 326, whichimplements the logic for selecting advertisements that closely match theinterests of a given user.

The Online Brokerage 330 may grant permission to a Third Party AdProvider 340 to deliver targeted advertisements directly to the OnlineBrokerage's 330 customers. The Third Party Ad Provider 340 typicallyoperates its own Advertisement Targeting System 342. To facilitate thedelivery of targeted advertisements, the Third Party Ad Provider 340typically employs middleware API 344 which is installed close to theAdvertisement Targeting System 342 and middleware API 348 which isinstalled with the Front-end Trading System 350. The middleware API 344and middleware API 348 ensure data compatibility between the data formatused by the Third Party Ad Provider 340 and the data format that isunderstood by the Front-end Trading System 350.

The Third Party Ad Provider 340 typically maintains its own Ad Pool 338and it may also maintain its own User Profiles 334 database. The ThirdParty Ad Provider 340 typically does not have detailed profileinformation about the Online Brokerage's 330 customers, as a result theadvertisements that the Third Party Ad Provider 340 delivers directly tothe Online Brokerage's 330 customers may not accurately match thecustomers' interests. The User Profiles 334 database and the Ad Pool 338are inputs to the Ad Targeting Engine 336, which implement the logic forselecting advertisements that closely match the interests of users.

The Third Party Ad Provider 340 may also deliver targeted advertisementsto the Online Brokerage 330 for redistribution by the latter to itscustomers. In this scenario, the Online Brokerage 330 uses the ThirdParty Ad Provider 340's middleware API 344 to receive advertisementswhich the Online Brokerage 330 may then store in its Ad Pool 314.

The targeted advertisements delivered by the Online Brokerage 330 and/orThird Party Ad Provider 340 to the Front-end Trading System 350 aretypically displayed to the user using suitable user interfacetechnologies such as HTML, Macromedia™ Flash, Portable Document Format(PDF), and the like. The User Interface Components 354 that areinstalled with the Front-end Trading System 350 are responsible fordisplaying the targeted advertisements to the user. The User InterfaceComponents 354 are distinct from the Business Logic Components 352 thathandle the business-related functionalities of the Front-end TradingSystem 350. The User Interface Components 354 and the Business LogicComponents 352 typically capture statistical data pertaining to thedisplay of the advertisement, such as the time the user spends viewingan advertisement, the time it takes to browse through a list ofadvertisements, the time it takes for the user to purchase theadvertised product or service, and other related metrics. The UserInterface Components 354 typically communicates the statistical datathat it captures to the Back-end System 328, using middleware API 346and middleware API 332.

When the user of the Front-end Trading System 350 responds to a targetedadvertisement by executing an action such as clicking on the UniformResource Locator (URL) associated with the targeted advertisement, theuser is typically directed to an E-Commerce System 360, which is asystem that facilitates the online purchase of products and services.The E-Commerce System 360 may be operated by the Online Brokerage 330,or the E-Commerce System 360 may be operated by a third party company,for example the seller or provider of the product or service beingadvertised. The E-Commerce System 360 typically employs a middleware API356 to facilitate communication with the Front-end Trading System 350and the Back-end System 328 operated by the Online Brokerage 330. TheOrder Processing System 358 is responsible for processing the purchasetransactions that may be initiated by users of the Front-end TradingSystem 350. Typically, the Back-end System 328, the Business LogicComponents 352, the User Interface Components 354, the Order Processing358, and the various middleware API's work together to facilitatepurchase transactions, to perform business-related auditing, to gatherstatistical information about the purchasing behavior of users, and toperform other related functions.

FIG. 59 shows the internal structure of the Advertisement TargetingSystem. The Advertisement Targeting System 310 typically uses a UserProfiles 312 database and an Ad Pool 314 as inputs. The User Profiles312 database contains detailed information about users and theirrespective interests/preferences, demographics, purchasing history, andany other information that the owner of the Advertisement TargetingSystem 310 consider relevant. A data record in the User Profiles 312database may represent a single person or entity, or a group of personsor entities categorized together based shared characteristics. The AdPool 314 is a database of advertisements containing information aboutthe specifications of a product or service, purchasing information,images, referral-tracking information, and other merchandise-relatedinformation.

The User Profiles 312 database and the Ad Pool 314 are typicallygenerated and maintained by the owner of the Advertisement TargetingSystem 310. The owner of the Advertisement Targeting System 310 may alsoobtain the contents of the User Profiles 312 database and the Ad Pool314 from third party companies such as market research firms,advertising firms, and the like.

The output of the Advertisement Targeting System 310 is a set ofTargeted Ads 324 that match the interests of a given user. The TargetedAds 324 are typically packaged in a suitable data exchange format, suchas XML.

At the core of the Advertisement Targeting System 310 is theAdvertisement Targeting Engine 326, which can be visually depicted as afunnel. A large set of potential advertisements retrieved from the AdPool 314 are fed to the Advertisement Targeting Engine 326. TheAdvertisement Targeting Engine 326 gradually narrows down the set ofadvertisements by applying filtering and scoring rules to the set ofadvertisements until only a small set of advertisements is left.

The Advertisement Targeting Engine 326 executes the several steps togenerate Targeted Ads 324 that match the interests of a given user. TheFiltering 316 step quickly removes advertisements from the initial setof potential advertisements. In this step the Advertisement TargetingEngine 326 applies broad rules, for example a date range or demographiccriteria such as the gender or age of the target market for theadvertisements.

The Scoring 318 step involves the application of computational methods,business rules, and other criteria, to evaluate how closely anadvertisement matches the interests of a given user. During this step ascore is associated with each advertisement based on the results of theaforementioned computational methods/business rules. An example of abusiness rule used during this step is the assignment of a higher scoreto advertisements made by a preferred company.

The Select Winning Ads 320 step involves the application of furtherbusiness rules against the set of advertisements generated by theprevious steps, in order to rank the set of advertisements according tosome criteria. An example of a business rule used during this step is toselect the top N paid advertisements that maximize profits for the ownerof the Advertisement Targeting System 310.

The Record History 322 step involves the recording of the final outputof the Advertisement Targeting Engine 326 in the User Profile record ofa given user. This information is typically used during subsequentexecutions of the Advertisement Targeting Engine 326, for example toexclude advertisements that have been previously delivered to a givenuser.

A tabs based drag and drop graphical trading interface and its systemarchitecture has been described. The software, and particulars of thesoftware, have been described to the extent necessary, it beingunderstood that any person skilled in the art of writing software forthe appropriate platform such as ActiveX, Windows, GUI-based systems,and so on, may write specific software, and may provide specificfunctional and logical architecture, without departing from the spiritand the scope of the appended claims.

Other modifications and alterations may be used in the design andmanufacture of the present invention without departing from the spiritand scope of the accompanying claims.

Throughout this specification and the claims which follow, unless thecontext requires otherwise, the word “comprise”, and variations such as“comprises” or “comprising”, will be understood to imply the inclusionof a stated integer or step or group of integers or steps but not to theexclusion of any other integer or step or group of integers or steps.

1. A graphical trading interface comprising of a graphical interfaceadapted to display market trading data received from at least one marketparticipant, wherein said graphical interface establishes connectionswith any backend systems used by any market participant throughcommunication channels; wherein said market trading data includesinformation chosen from the group of market trading data consisting of:order data as to buy, sell, or other trading orders, quote data as tobid and ask prices, volume, market participant identifiers, and otherparameters, and wherein said market trading data is transmitted to saidgraphical interface from said back end system in computer-readableelectronic format; wherein said graphical interface includes at leastone display panel for graphically presenting market trading data,wherein said market trading data is graphically presented on said atleast one display panels; wherein an intended trading order or a tradingorder is represented on said at least one display panel by a GUI object,wherein said GUI object is selected and positioned over said at leastone display panel, by a user of said graphical interface, using pointingand positioning means for pointing and positioning a GUI object on saidgraphical interface; wherein the act of selecting and positioning saidGUI object representing said trading order, over said at least onedisplay panel, effects order placement or order modificationinstructions, and wherein said GUI object has an associated GUI objectrepresenting the status of the trading order.
 2. The graphical tradinginterface of claim 1, wherein said GUI object and said associated GUIobject may be electively cross referenced to one another.
 3. Thegraphical trading interface of claim 1, wherein advertising content maybe displayed within a tab page and on the main window.